// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import com.fowo.api.common.mybatis.handlers.SysFileListTypeHandler;
import com.fowo.api.sys.entity.SysFile;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * ReceiptProduct
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "receipt_product", autoResultMap = true)
@Schema(title = "收货单子表")
public class ReceiptProduct implements Serializable {

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 商品图片
   */
  @TableField(
    value = "`product_img`",
    typeHandler = SysFileListTypeHandler.class
  )
  @Schema(title = "商品图片")
  private List<SysFile> productImg;

  /**
   * 商品
   */
  @TableField(value = "`product_id`")
  @JoinField(Product.class)
  @Schema(title = "商品")
  private Long productId;

  /**
   * 商品名
   */
  @TableField(value = "`product_name`")
  @Schema(title = "商品名")
  private String productName;

  /**
   * SKU
   */
  @TableField(value = "`sku`")
  @Schema(title = "SKU")
  private String sku;

  /**
   * 产品标签
   */
  @TableField(value = "`product_tags`")
  @Schema(title = "产品标签")
  private String productTags;

  /**
   * 店铺
   */
  @TableField(value = "`shop_id`")
  @JoinField(ShopInfo.class)
  @Schema(title = "店铺")
  private Long shopId;

  /**
   * 店铺名
   */
  @TableField(value = "`shop_name`")
  @Schema(title = "店铺名")
  private String shopName;

  /**
   * FNSKU
   */
  @TableField(value = "`fnsku`")
  @JoinField(ListingFather.class)
  @Schema(title = "FNSKU")
  private Long fnsku;

  /**
   * 所属收货单
   */
  @TableField(value = "`parent_receipt`")
  @JoinField(Receipt.class)
  @Schema(title = "所属收货单")
  private Long parentReceipt;

  /**
   * 采购订单
   */
  @TableField(value = "`po`")
  @JoinField(PurchaseOrder.class)
  @Schema(title = "采购订单")
  private Long po;

  /**
   * 采购量
   */
  @TableField(value = "`purchase_num`")
  @Schema(title = "采购量")
  private Long purchaseNum;

  /**
   * 通知收货量
   */
  @TableField(value = "`notice_receipt_num`")
  @Schema(title = "通知收货量")
  private Integer noticeReceiptNum;

  /**
   * 待到货量
   */
  @TableField(value = "`wait_num`")
  @Schema(title = "待到货量")
  private Integer waitNum;

  /**
   * 已通知量
   */
  @TableField(value = "`notified_num`")
  @Schema(title = "已通知量")
  private Integer notifiedNum;

  /**
   * 未通知量
   */
  @TableField(value = "`not_notified_num`")
  @Schema(title = "未通知量")
  private Integer notNotifiedNum;

  /**
   * 备注
   */
  @TableField(value = "`remarks`")
  @Schema(title = "备注")
  private String remarks;

  /**
   * 收货量
   */
  @TableField(value = "`receipt_num`")
  @Schema(title = "收货量")
  private Long receiptNum;

  /**
   * 收货量隐
   */
  @TableField(value = "`receipt_num_hidden`")
  @Schema(title = "收货量隐")
  private Long receiptNumHidden;

  /**
   * 待检量
   */
  @TableField(value = "`no_qc_num`")
  @Schema(title = "待检量")
  private Long noQcNum;

  /**
   * 未质检
   */
  @TableField(value = "`low_quality`")
  @Schema(title = "未质检")
  private Long lowQuality;

  /**
   * 质检中
   */
  @TableField(value = "`reflecti`")
  @Schema(title = "质检中")
  private Long reflecti;

  /**
   * 已检量
   */
  @TableField(value = "`tested_quantity`")
  @Schema(title = "已检量")
  private Long testedQuantity;

  /**
   * 可用量
   */
  @TableField(value = "`product_good_num`")
  @Schema(title = "可用量")
  private Long productGoodNum;

  /**
   * 可用量隐一
   */
  @TableField(value = "`product_good_num_hidden_first`")
  @Schema(title = "可用量隐一")
  private Long productGoodNumHiddenFirst;

  /**
   * 可用量隐二
   */
  @TableField(value = "`product_good_num_hidden_second`")
  @Schema(title = "可用量隐二")
  private Long productGoodNumHiddenSecond;

  /**
   * 次品量
   */
  @TableField(value = "`product_bad_num`")
  @Schema(title = "次品量")
  private Long productBadNum;

  /**
   * 质检状态 (0 - 未质检; 1 - 完成质检; 2 - 部分质检; 3 - 全部质检; 4 - 已免检 ; )
   */
  @TableField(value = "`qc_status`")
  @Schema(title = "质检状态")
  private String qcStatus;

  /**
   * 质检单
   */
  @TableField(value = "`qs_message`")
  @JoinField(QualityCheckStorage.class)
  @Schema(title = "质检单")
  private Long qsMessage;

  /**
   * 产品备注
   */
  @TableField(value = "`extra_info`")
  @Schema(title = "产品备注")
  private String extraInfo;

  /**
   * 源表勾稽字段
   */
  @TableField(value = "`cross_qty`")
  @Schema(title = "源表勾稽字段")
  private Long crossQty;

  /**
   * 本次质检量
   */
  @TableField(value = "`quantity_inspection`")
  @Schema(title = "本次质检量")
  private Long quantityInspection;

  /**
   * 本次免检量
   */
  @TableField(value = "`quantity_no_inspection`")
  @Schema(title = "本次免检量")
  private Long quantityNoInspection;

  /**
   * 良品量
   */
  @TableField(value = "`good_quantity`")
  @Schema(title = "良品量")
  private Long goodQuantity;

  /**
   * 收货单id
   */
  @TableField(value = "`receipt_id`")
  @Schema(title = "收货单id")
  private Long receiptId;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 待检
   */
  @TableField(value = "`quarantine`")
  @JoinField(WarehouseBin.class)
  @Schema(title = "待检")
  private Long quarantine;

  /**
   * 领星FNSKU
   */
  @TableField(value = "`lx_fnsku`")
  @Schema(title = "领星FNSKU")
  private String lxFnsku;

  /**
   * 采购单子表id
   */
  @TableField(value = "`purchase_order_product_id`")
  @Schema(title = "采购单子表id")
  private Long purchaseOrderProductId;
}
